package oj;

import java.util.ArrayList;
import java.util.List;

public class LC98 {
    /**
     * 简洁版中序遍历
     */
    long pre=Long.MIN_VALUE;
    public boolean isValidBST(TreeNode root) {
        if(root==null) return true;
        //访问左子树
        if(!isValidBST(root.left)) return false;

        //如果中序遍历的节点小于前一个节点则返回false
        if(root.val<=pre) return false;
        pre=root.val;

        //访问右节点
        return isValidBST(root.right);
    }

//普通中序遍历
//    List<Integer> list =new ArrayList<>();
//    public boolean isValidBST(TreeNode root) {
//        if(root==null) return true;
//        Inorder(root);
//        for(int i=1;i<list.size();i++){
//            if(list.get(i)<=list.get(i-1)){
//                return false;
//            }
//        }
//        return true;
//    }
//    private  void Inorder(TreeNode root){
//        if(root!=null){
//            Inorder(root.left);
//            list.add(root.val);
//            Inorder(root.right);
//        }
//    }
}
